In the past the Internet was used as non-symmetrical network, in which most of the data traffic was directed from the Internet servers toward the users' devices. Accordingly, common flow control and load control methods are designed to control the traffic from an Internet server toward a user device. For example, Internet servers are configured to use a congestion-avoidance-control mechanism. In some cellular networks, intermediate nodes may use congestion-avoidance-control mechanism such as Active Queue Management (AQM) in order to control their contribution to the current load over the connection. The congestion-avoidance-control mechanism controls the rate of data entering the network from that server and keeping the data flow below a rate that would trigger unmanaged congestion event. In addition, congestion-avoidance-control mechanism and/or AQM technique also used to fairly allocate resources among downstream flows.
On the other end, user devices are designed to control the downloaded rate of their own flow according to the current capabilities of the user devices. For example, controlling the download rate of flows over a TCP/IP connection to a client, the client is designed to change the size of the “receive window” parameter that the client sends toward an Internet server. Thus, limiting the number of transmitted bytes that can be sent from a web server, between two consecutive acknowledgements that were sent from the client. A TCP/IP connection stands for Transmission Control Protocol over Internet Protocol network. Along the disclosure and the claims the terms “receive window” or “advertising window” can be used interchangeably.
In addition, intermediate nodes or servers, between a user device and a web server, which delivers the requested data, are configured to use a congestion-avoidance-control mechanism, thus an intermediate node has its own buffers and is configured to drop packets, when the buffers reach a certain limitation. Some of those intermediate servers control the buffers based on a threshold that is defined in number of bytes and some of the servers are configured to control the buffer based on latency values. Along the disclosure and the claims the terms “packet” or “byte” can be used interchangeably.
Today the Internet becomes more and more symmetrical. There are more and more applications in which a user can upload a large volume of data toward an Internet server. Some of those applications comprise applications such as but not limited to “Facebook” or “Instagram” (Facebook and Instagram are trademarks of Facebook Inc. USA) that allow uploading of images, video images, etc. Today, even emails can carry a large volume of data, images, files etc. Further, there are applications that allow real-time communication sessions, such as but not limited to chat, video or audio conferencing, etc. that have symmetrical upload and download volume of data.
In an uploading session a user device acts as a server and sends IP packets toward the Internet. While the destination server acts as a client that is configured to receive those packets. However, a common user device is configured to use common TCP/IP congestion-avoidance-control mechanism, which is not optimized for uploading session in dynamic networks. A cellular access network can be used as an example of a dynamic network, in which bandwidth (BW) and the latency are changed dynamically. Consequently, buffers in between the user device and the destination server can reach their buffer limitations and start dropping packets.
In TCP/IP connection, dropping packets will cause lost packet indication from the destination, which will follow by retransmission and reducing dramatically the bitrate of the transmission. In common TCP/IP connection the congestion window can be reduced up to half of the previous value. Thus, increasing the upload time and reducing the experience of the user. The congestion window is used by the transmitting side to limit the number of bytes sent and not acknowledged yet.
Further, more and more users use their smart phones in order to communicate over the Internet and upload data such as video or images. Images and video that are captured by the smartphone camera, for example. Common cellular intermediate nodes that are located in between the mobile device and the Internet, at the cellular operator premises, are configured to have tight buffer limitations. Some of those buffer limitations are volume related (their threshold is given in number of bytes) other buffer limitations are time related. An intermediate node, which uses time domain limitation, can be configured to drop packets that are stored in buffers more than a certain limit. For example buffer limitation that is used over a connection between a mobile device and an LTE operator premises may be given in time domain. Usually intermediate nodes, at LTE networks, are configured to drop stored packets which are stored more than 200 milliseconds, for example. LTE stands for 3GPP Long Term Evolution, which is also referred as 4G. An example of an intermediate node can be EnodeB (Evolved Node B) of an LTE cellular operator.